package no.uio.ifi.cop.cl;

import java.util.ArrayList;
import java.util.Set;

/**
 * Constants, Variables and Predicates implement this interface.
 *
 * @version 1.0
 * @author bjarneh@ifi.uio.no
 */

public interface Term{
    public String getId();
    public String strType();
    public boolean isVariable();
    public boolean isPredicate();
    public boolean isConstant();
    public Term apply(Substitution subst);
    public void gatherVariables(Set<String> set);
    public boolean match(Substitution subst, Term other);
    public Substitution smatch(Term other);
    public Term clone();
    public boolean equals(Object other);
    public String toString();
}
